#pragma once

#include <iostream>

class Shape
{
public:
    virtual void draw() = 0;
    virtual ~Shape(){}
};

class Square : public Shape
{
public:
    virtual void draw() override
    {
        std::cout << "Square's draw\n";
    }
};

class Circle : public Shape
{
public:
    virtual void draw() override
    {
        std::cout << "Circle's draw\n";
    }
};

class Triangle : public Shape
{
public:
    virtual void draw() override
    {
        std::cout << "Triangle's draw\n";
    }
};